import { defineStore } from "pinia";
// https://pinia.vuejs.org/zh/

// 你可以任意命名 `defineStore()` 的返回值，但最好使用 store 的名字，同时以 `use` 开头且以 `Store` 结尾。
// (比如 `useUserStore`，`useCartStore`，`useProductStore`)
// 第一个参数是你的应用中 Store 的唯一 ID。
export const useGlobalStore = defineStore("globals", {
  state: () => {
    return {
      count: 10,
      isAdmin: true,
      items: [],
      hasChanged: true,
      userData: {
        name: "Eduardo",
      } as { name: string } | null,
    };
  },
  getters: {
    doubleCount: (state) => state.count * 2,
  },
  actions: {
    /**
     * 注册用户
     * @param count 用户名
     * @param password 密码
     * @returns
     */
    registerUser(count: string, password: string) {
      return new Promise((resolve) => {
        if (count === "admin" && password === "123456") {
          this.userData = {
            name: count,
          };
          resolve(true);
        }
        resolve('用户名或密码错误');
      });
    },
    /**
     * 重置状态
     */
    reset() {
      this.count = 0;
      this.userData = null;
    },
  },
});
